package com.cyt.work.site.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.service.BaseService;
import com.cyt.work.site.model.po.NoticeRecord;
import com.cyt.work.site.model.vo.NoticeRecordVo;

import java.util.List;

/**
 * 微官网-校园资讯阅读记录Service层接口类
 *
 * @author rong yuan
 * @date 2019-7-9 18:13:40
 */
public interface NoticeRecordService extends BaseService<NoticeRecord> {

    /**
     * 分页查询
     *
     * @param noticeRecordVo 接受参数对象
     * @param pageNum        分页数
     * @param pageSize       每页显示条数
     * @return ReturnResult
     * @author rong yuan
     * @date 2019-7-9 18:13:40
     */
    ReturnResult findPage(NoticeRecordVo noticeRecordVo, int pageNum, int pageSize);

    /**
     * 分页查询
     *
     * @param noticeRecordVo 接受参数对象
     * @param pageNum        分页数
     * @param pageSize       每页显示条数
     * @return ReturnResult
     * @author rong yuan
     * @date 2019-7-9 18:13:40
     */
    ReturnResult findVoPage(NoticeRecordVo noticeRecordVo, int pageNum, int pageSize);

    /**
     * list查询
     *
     * @param noticeRecordVo 接受参数对象
     * @return List<NoticeRecord>
     * @author rong yuan
     * @date 2019-7-9 18:13:40
     */
    List<NoticeRecord> findList(NoticeRecordVo noticeRecordVo);

    /**
     * list查询
     *
     * @param noticeRecordVo 接受参数对象
     * @return List<NoticeRecordVo>
     * @author rong yuan
     * @date 2019-7-9 18:13:40
     */
    List<NoticeRecordVo> findVoList(NoticeRecordVo noticeRecordVo);

    /**
     * 单个对象查询
     *
     * @param noticeRecordVo 接受参数对象
     * @return NoticeRecord
     * @author rong yuan
     * @date 2019-7-9 18:13:40
     */
    NoticeRecord findOne(NoticeRecordVo noticeRecordVo);

    /**
     * 单个对象查询
     *
     * @param noticeRecordVo 接受参数对象
     * @return NoticeRecordVo
     * @author rong yuan
     * @date 2019-7-9 18:13:40
     */
    NoticeRecordVo findVoOne(NoticeRecordVo noticeRecordVo);

    /**
     * 添加或更新
     *
     * @param noticeRecordVo 参数接受对象
     * @param sysUser        当前用户
     * @return ReturnResult
     * @author rong yuan
     * @date 2019-7-9 18:13:40
     */
    ReturnResult addOrUpdate(NoticeRecordVo noticeRecordVo, SysUser sysUser);

    /**
     * 根据条件逻辑删除
     *
     * @param noticeRecordVo 参数接受对象
     * @param sysUser        当前用户
     * @return ReturnResult
     * @author rong yuan
     * @date 2019-7-9 18:13:40
     */
    ReturnResult remove(NoticeRecordVo noticeRecordVo, SysUser sysUser);

    /**
     * 根据条件物理删除
     *
     * @param noticeRecordVo 参数接受对象
     * @param sysUser        当前用户
     * @return ReturnResult
     * @author rong yuan
     * @date 2019-7-9 18:13:40
     */
    ReturnResult delete(NoticeRecordVo noticeRecordVo, SysUser sysUser);
}